Instant Client 将 Oracle Database 库、工具和头文件重新打包在一起,可用于创建和运行连接到远程(或本地)Oracle Database 的应用。Instant Client 可用于运行 OCI、OCCI、Pro*C、JDBC 和 ODBC 应用,并可用于运行脚本语言驱动程序,包括 PHP 的 OCI8、Python 的 cx_Oracle、Node.js 的 node-oracledb 以及 Ruby 的 ruby-oci8 API。SDK 软件包提供了头文件,用于编译使用 OCI 和 OCCI API 的 C 以及 C++ 程序。Instant Client 软件包还提供了一些实用程序,例如 SQL*Plus、Workload Replay Client、Data Pump 和 SQL*Loader。Instant Client 主页上介绍了可用的 Instant Client 软件包。
Instant Client 的优点是,只需对 ZIP 软件包快速解压缩即可安装,或可简单安装 Linux RPM 软件包。Instant Client 的占用空间要比整个 Oracle Client 小得多。其他优点是,它可根据支持重新分配的 OTN 许可证提供。基于 Instant Client 的应用可充分利用缓存和连接池等 Oracle Client 功能、网络加密等 Oracle Net 功能以及各种各样的 Oracle Database 功能。
对于与完整 Oracle Client 进行互操作的任何数据库版本,基于 Instant Client 的应用也可与之进行互操作。例如,Instant Client 12.2 可连接至 11.2、12.1 和 12.2 数据库。详细信息可参见支持文档 ID 207303.1 中的互操作性矩阵。请注意,Instant Client 包含许多不同的 Oracle 工具和技术,其中一些可能具有更严格的要求。
可从 OTN 安装 Instant Client 软件包。Oracle Linux 用户可从 ULN 安装。此外,也可在安装完整 Oracle Client 时选择安装此软件包。Instant Client 与每个 Oracle Database 版本同时提供。包括 Apple macOS 在内的多个平台也提供 Instant Client 软件包,但未提供 Database 或完整的 Client。
任何人均可从 OTN 免费获取 Instant Client,用于开发或生产环境。但是,客户仅在已签订标准支持合同的情况下,才能获得 Oracle 支持服务。
根据许可规定,可免费捆绑和重新分发 Instant Client。企业可在其组织内重新分发 Instant Client。但是,客户仅在已签订标准支持合同的情况下,才能获取 Instant Client 的 Oracle 支持服务。
所有不要求使用 ORACLE_HOME(查找 tnsnames.ora 或 sqlnet.ora 等配置文件)的 Oracle Net 命名方法,在 Instant Client 模式下均适用。
对于基于 C 和 C++ 的应用,可采用以下格式指定连接字符串:
采用以下形式的 Easy Connect 字符串:
[//]host_name[:port][/service_name][:server_type][/instance_name]
such as: localhost/pdborcl
作为 Oracle Net 关键字/值对。例如:
"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dlsun242)
(PORT=5521))
(CONNECT_DATA=(SERVICE_NAME=bjava21)))"
如果设置了 TNS_ADMIN 环境变量,则要求使用 TNS_ADMIN 查找配置文件的命名方法仍将适用。
如果未设置 TNS_ADMIN 环境变量,但使用了 inst1 等 TNSNAMES 条目,则必须设置 ORACLE_HOME 变量,并且配置文件应位于 $ORACLE_HOME/network/admin 目录中。
请注意,在这种情况下,ORACLE_HOME 变量仅用于查找 Oracle Net 配置文件,并且客户端代码库的任何其他组件(OCI、NLS 等)均不使用 ORACLE_HOME 的值。
不支持继承适配器或空连接字符串。不过,使用空连接字符串的替代方法是,将 TWO_TASK 环境变量(在 UNIX 上)或 LOCAL 变量(在 Windows 上)设置为 tnsnames.ora 条目或 Oracle Net 关键字/值对。如果 TWO_TASK 或 LOCAL 设置为 tnsnames.ora 条目,则 tnsnames.ora 文件必须能由 TNS_ADMIN 或 ORACLE_HOME 设置加载。
不,Instant Client 与 Oracle Names 不兼容。尽管 Instant Client 可与旧数据库向后兼容,但它不支持现已弃用的功能,包括 Oracle Names。请参阅 Metalink 简讯。
只要库加载路径在 ORACLE_HOME 中的库目录之前具有包含 Instant Client 文件的目录(例如,instantclient 目录),则该应用将在 Instant Client 模式下运行,并且将不使用 ORACLE_HOME 中的库。
在 Instant Client 模式下,将忽略环境变量 ORA_NLS33、ORA_NLS32 和 ORA_NLS。应将 ORA_TZFILE 环境变量设置为大型时区文件的名称,而不是其完整路径。所有其他环境变量(例如 NLS_LANG)的行为未发生更改。
部分 Oracle 应用当前正在 Instant Client 下对操作进行认证。此类消息将在认证完成后消失。
Instant Client 库占用的虚拟地址空间量与文件的大小相同。但是,只有来自库的常用错误消息才会占用物理内存。在大多数情况下,尽管保留的虚拟地址空间较大,但物理内存负载仍为几个 KB。
可在注册表中面向所有用户或基于每个用户,为已启用 Instant Client 的应用进行特殊设置。
如果计算机上已安装 Oracle Client,我们建议:
通过将 TNS_ADMIN 环境变量或注册表项设置为包含文件的目录,Instant Client 便能找到“tnsnames.ora”、“sqlnet.ora”和“oraaccess.xml”等文件。使用完整目录路径;不包括文件名。或者,在 Instant Client 目录下为 Oracle Net 文件创建子目录“network/admin”。这是默认位置,因此不需要 TNS_ADMIN 变量。
可以。自 10.1.0.4 版本开始,LDAP 可与 Instant Client 一起使用。
是,支持在 Unix 平台上同时运行 Pro*C 与 Instant Client 10.2.0.x。当前,不支持在 Windows 上同时运行 Pro*C 与 Instant Client。
注:为免疑义,本网页所用以下术语专指以下含义: